package com.ruoyi.contract.domain.contractVo;

import com.ruoyi.contract.domain.Contract;
import com.ruoyi.contract.domain.ContractAppendices;
import com.ruoyi.contract.domain.Invoice;
import com.ruoyi.contract.domain.PaymentCollectionPlan;
import com.ruoyi.contract.domain.invoiceVo.SelectInvoiceVo;
import org.springframework.beans.BeanUtils;

import java.math.BigDecimal;
import java.util.List;

public class ContractAllRelevantVo {
    /** 合同 */
    private Contract contract;

    /** 签约方列表 */
    private List<String> contractPartyNameList;

    /** 收付款计划详情列表 */
    private List<PaymentCollectionPlan> paymentCollectionPlanList;

    /** 合同附件列表 */
    private List<ContractAppendices> contractAppendicesList;

    /** 发票列表 */
    private List<SelectInvoiceVo> selectInvoiceVo;

    public ContractAllRelevantVo(Contract contract) {
        this.contract = contract;
        BeanUtils.copyProperties(contract, this);  // 复制 contract 属性到当前对象
    }

    // 无参构造函数
    public ContractAllRelevantVo() {
    }

    // Getter and Setter for contract
    public Contract getContract() {
        return contract;
    }

    public void setContract(Contract contract) {
        this.contract = contract;
    }

    // Getter and Setter for contractPartyNameList
    public List<String> getContractPartyNameList() {
        return contractPartyNameList;
    }

    public void setContractPartyNameList(List<String> contractPartyNameList) {
        this.contractPartyNameList = contractPartyNameList;
    }

    // Getter and Setter for paymentCollectionPlanList
    public List<PaymentCollectionPlan> getPaymentCollectionPlanList() {
        return paymentCollectionPlanList;
    }

    public void setPaymentCollectionPlanList(List<PaymentCollectionPlan> paymentCollectionPlanList) {
        this.paymentCollectionPlanList = paymentCollectionPlanList;
    }

    // Getter and Setter for contractAppendicesList
    public List<ContractAppendices> getContractAppendicesList() {
        return contractAppendicesList;
    }

    public void setContractAppendicesList(List<ContractAppendices> contractAppendicesList) {
        this.contractAppendicesList = contractAppendicesList;
    }

    // Getter and Setter for selectInvoiceVo
    public List<SelectInvoiceVo> getSelectInvoiceVo() {
        return selectInvoiceVo;
    }

    public void setSelectInvoiceVo(List<SelectInvoiceVo> selectInvoiceVo) {
        this.selectInvoiceVo = selectInvoiceVo;
    }
}

